import { ModuleMetadata, Type } from '@nestjs/common'

export interface NotifyClientModuleOptions {
  rpcSecret: string
}

export interface NotifyClientModuleOptionsFactory {
  createNotifyClientOptions(): NotifyClientModuleOptions | Promise<NotifyClientModuleOptions>
}

export interface NotifyClientModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
  useExisting?: Type<NotifyClientModuleOptionsFactory>
  useClass?: Type<NotifyClientModuleOptionsFactory>
  inject?: any[]
  useFactory?: (...args: any[]) => Promise<NotifyClientModuleOptions> | NotifyClientModuleOptions
}